package com.brand.prisd.utils;

import com.orhanobut.logger.Logger;
import com.tuya.smart.home.sdk.TuyaHomeSdk;
import com.tuya.smart.home.sdk.api.ITuyaHomeChangeListener;
import com.tuya.smart.home.sdk.bean.HomeBean;
import com.tuya.smart.home.sdk.callback.ITuyaHomeResultCallback;
import com.tuya.smart.sdk.bean.DeviceBean;
import com.tuya.smart.sdk.bean.GroupBean;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by HJ on 2018/12/12.
 */
public class HomeManger {

    private long homeId;

//     * @param name     家庭名称
//     * @param lon      经度
//     * @param lat      纬度
//     * @param geoName  家庭地理位置名称
//     * @param rooms    房间列表
//     * @param callback
//     * void createHome(String name, double lon, double lat, String geoName, List<String> rooms, ITuyaHomeResultCallback callback);
    public static void createHome() {
        ArrayList<String> rooms = new ArrayList<>();
        rooms.add("客厅");
        rooms.add("卧室");
        rooms.add("厨房");
        TuyaHomeSdk.getHomeManagerInstance().createHome("PRISD", 114.05, 22.51, "深装总大厦", rooms, new ITuyaHomeResultCallback() {
            @Override
            public void onSuccess(HomeBean homeBean) {
                long homeId = homeBean.getHomeId();
                Logger.i("homeId: " + homeId);

            }

            @Override
            public void onError(String s, String s1) {
                Logger.e("s: " + s + "  " + "s1: " + s1);
            }
        });

    }

    /**
     * 初始化家庭下的所有数据
     */
    private static void getHomeDetail(long homeId) {
        TuyaHomeSdk.newHomeInstance(homeId).getHomeLocalCache(new ITuyaHomeResultCallback() {
            @Override
            public void onSuccess(HomeBean homeBean) {
                Logger.i("homeBean: " + homeBean.getHomeId());
            }

            @Override
            public void onError(String s, String s1) {
                Logger.e("s: " + s + "  " + "s1: " + s1);
            }
        });
    }

    public static void registerTuyaHomeChangeListener() {
        /**
         * 注册家庭信息的变更
         * 有：家庭的增加、删除、信息变更、分享列表的变更和服务器连接成功的监听
         *
         * @param listener
         */
        TuyaHomeSdk.getHomeManagerInstance().registerTuyaHomeChangeListener(new ITuyaHomeChangeListener() {
            /**
             * 家庭添加成功
             * 用于多设备数据同步
             *
             * @param homeId
             */
            @Override
            public void onHomeAdded(long homeId) {
                Logger.i("家庭添加成功 homeId: " + homeId);
            }

            /**
             * 家庭删除成功
             * 用于多设备数据同步
             *
             * @param homeId
             */
            @Override
            public void onHomeRemoved(long homeId) {

            }

            /**
             * 家庭信息变更
             * 用于多设备数据同步
             *
             * @param homeId
             */
            @Override
            public void onHomeInfoChanged(long homeId) {

            }

            /**
             * 分享设备列表变更
             * 用于多设备数据同步
             *
             * @param sharedDeviceList
             */
            @Override
            public void onSharedDeviceList(List<DeviceBean> sharedDeviceList) {

            }

            @Override
            public void onSharedGroupList(List<GroupBean> list) {

            }

            /**
             * 手机连接涂鸦云服务器成功，特别注意接收到此通知，
             * 本地数据与服务端数据可能会不一致或者无法控制设备，
             * 可以调用Home下面getHomeDetail接口重新初始化数据。
             */
            @Override
            public void onServerConnectSuccess() {
                Logger.i("手机连接涂鸦云服务器成功");
            }
        });
    }
}
